package br.ufrj.dcc.mapaviolencia.model;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;

import au.com.bytecode.opencsv.CSVReader;


public enum CategoriasViolencia {
	HOMICIDIO(0, "Homicidio"), 
	ASSALTO(1, "Assalto"), 
	ABUSO_SEXUAL(2, "Abuso Sexual"),
	AGRESSAO(3, "Agressao"),
	TRAFICO(4, "Trafico"),
	INCENDIO(5, "Incendio"),
	TIROTEIO(6, "Tiroteio"),
	FURTO(7, "Furto"),
	SEMCATEGORIA_CRIMECERTO(8, "Crime Certo, Sem Categoria"),
	SEMCATEGORIA_CRIMEINCERTO(9, "Crime incerto"),
	TODOSOSTOKENS(10, "Todos os tokens");
	
	public ArrayList<String> tokens = new ArrayList<String>();
	private final String nome;
	
	CategoriasViolencia(int indice, String nome){
		this.nome = nome;
		CSVReader csvReader = null;
		ArrayList<String[]> content = null;
		String csvFilename = "src/main/resources/tokens_por_categoria.csv";
		try {
			csvReader = new CSVReader(new FileReader(csvFilename));

		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		try {
			content = (ArrayList<String[]>) csvReader.readAll();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		int i = indice;
	    for(int j = 1; j < content.get(i).length; j++){
	    	if(content.get(i)[j].isEmpty()) break;
	    	tokens.add(content.get(i)[j]);
	    }

		try {
			csvReader.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public boolean equalsNome(String outroNome){
	        return (outroNome == null)? false:nome.equals(outroNome);
	}
	
	public String toString(){
		return nome;
	}
}